import cv2

img = cv2.imread('1/lena512color.tiff')
cv2.imshow('sourceImg', img)

#颜色空间转化，彩色图像转化成灰度图
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#官方文档https://docs.opencv.org/2.4/modules/imgproc/doc/miscellaneous_transformations.html#cvtcolor
#cv2.cvtColor(src, code[, dst[, dstCn]]) → dst 
#COLOR_BGR2GRAY BGR to Gray 
#我们常见的图像都说是rgb，但在这里变成了BGR的顺序，BGR的顺序是OpenCV缺省的颜色排列方式
#参数：
# src 原图像
# code 颜色空间转换代码，参数类型是int
# dst 输出图像
# dstCn 目标图像中的频道数； 如果参数为0，则通道数自动从src和代码得出。

_, gray1 = cv2.threshold(gray, 120, 0xff, cv2.THRESH_BINARY)
#threshold(src, thresh, maxval, type, dst=None, /) -> retval, dst
#(https://docs.opencv.org/2.4/modules/imgproc/doc/miscellaneous_transformations.html#threshold)
#Parameters:	
# src – input array (single-channel, 8-bit or 32-bit floating point).
# dst – output array of the same size and type as src.
# thresh – threshold value.
# maxval – maximum value to use with the THRESH_BINARY and THRESH_BINARY_INV thresholding types.
# type – thresholding type .
#参数：
# src 原图像，用的是输入数组（单通道，8位或32位浮点）。
# dst 与src具有相同大小，类型和相同通道数的输出数组。
# thresh 阈值
# maxval #THRESH_BINARY和#THRESH_BINARY_INV阈值类型使用的最大值。
# type 阈值类型


#采用了120的阈值，对图像进行阈值化
#这里的120可以进行调整，效果就会产生不同，往小调，整个图片会变白，往大调整个图片会变黑

cv2.imshow('gray', gray)
cv2.imshow('threshold', gray1)

cv2.waitKey()
cv2.destroyAllWindows()